#ifndef _MEMORY_INTERFACE_H_
#define _MEMORY_INTERFACE_H_

/*
	class : MemoryInterface
	desc : This is an interface for dealing with memory interfaces
		of any size.
*/
class MemoryInterface
{
	private : 
		BitArray addressLine;
		BitArray dataLine;
		BitArray control;
		enum ControlValues
		{
			OE = 0,
			CE = 1,
			WE = 2,
			RP = 3
		};
	public:
		MemoryInterface(unsigned long int addrSize, unsigned long int dSize)
		{
			control = BitArray(4);
			addressLine = BitArray(addrSize);
			dataLine = BitArray(dSize);
		}
		BitArray& getAddress(){return addressLine;}
		BitArray& getData(){return dataLine;}
		BitArray& getControl(){return control;}
		
};


#endif
